This invention relates to regulating the flow of information between electronic mail ("e-mail") servers within a local area network ("LAN").
A typical e-mail system as shown in FIG. 1 includes one or more interconnected servers 101 each serving one or more clients 103 (e.g., individual workstations). A client in turn may interact with an end-user--a human operator that seeks to use the e-mail system to communicate with other end-users, for example. The collection of interconnected servers 101 and their respective clients 103 constitute a single "site" 105 which may communicate with one or more other sites within the same LAN. A site is delimited by a unique e-mail address space--that is, each server 101 within a single site 105 shares the same e-mail address space.
In a typical application of an e-mail system, an end-user uses an associated client 103 connected to a particular server 101 within site 105 to send an e-mail message, or some other type of information packet, to another end-user who may be connected through a client to the same server or to a different server. The server on which the message originates is the "originating" server and the server that receives the message is the "destination" server. The destination server may be within the same site (the "local" or "source" site) as the originating server or at a different site (a "remote" or "destination" site).
Each server within a site has a direct communication path 107 to every other server within that same site. This allows messages to be delivered in a single "hop" between any two servers within the site. A mechanism that may be used to transport messages from one server to another, either within a single site or across site boundaries, is the remote procedure call ("RPC"). An RPC passes the thread of execution from one memory address space to another memory address space while maintaining program context. Two servers that may communicate directly with each other using an RPC are said to have direct RPC connectivity. The RPC protocol is discussed in detail in "Microsoft RPC Programming Guide," John Shirley and Ward Rosenberry, O'Reilly & Associates, Inc., Sebastopol, Calif., 1995, which is incorporated herein by reference.
A conventional e-mail system such as that shown in FIG. 2 employs a "one-to-one" intersite connectivity model in which every server in site 205 has direct RPC connectivity (via communication paths 107) with every server in site 215. The one-to-one connectivity model, while acceptable for LANs having only a few sites, does not scale up gracefully and thus is not well suited as a general model for intersite communications. As more sites are added to the LAN, the number of direct communication paths required to maintain one-to-one intersite connectivity increases dramatically and quickly becomes unmanageable if the number of sites grows to more than just a few.
In the two site configuration of FIG. 2, for example, eight separate communication paths are necessary to maintain one-to-one connectivity between site 205 and site 215. If a third site having four servers were added to the LAN, the number of communication paths required to maintain one-to-one intersite connectivity would increase to 32--a fourfold increase through the addition of just one extra site. The amount of network and operating system resources that are consumed by the managment of these connections would increase proportionately with the total number of connections maintained. Moreover, a substantial amount of manual administrative overhead is imposed on the system administrator who must keep the list of servers in the remote sites up to date with respect to the actual servers present in those sites. Consequently, the burden imposed on the e-mail system's resources quickly would become unmanageable if the number of sites in FIG. 2 was increased beyond just 2 or 3.
In any multi-site e-mail system, a system administrator is faced with a challenge of determining an efficient and cost-effective manner of transporting e-mail traffic from one site to another. What is needed is a set of tools and techniques that facilitate efficient intersite communications in a LAN having an arbitrarily large number of sites.